package com.wm.service.imp;

import java.util.List;

import com.wm.bean.Area;
import com.wm.bean.City;
import com.wm.bean.User;
import com.wm.bean.UserComment;
import com.wm.bean.UserScriptorium;
import com.wm.dao.AddressDAO;
import com.wm.dao.AreaDAO;
import com.wm.dao.CityDAO;
import com.wm.dao.UserCommentDAO;
import com.wm.dao.UserDAO;
import com.wm.dao.UserScriptoriumDAO;
import com.wm.service.UserCommentService;
import com.wm.service.UserScriptoriumService;
import com.wm.service.UserService;
import com.wm.service.web.PageList;
import com.wm.service.web.Pages;

/**
 * @author yangbo
 *
 * 2013-1-4
 */
public class UserScriptoriumServiceImp implements UserScriptoriumService {
	private UserScriptoriumDAO userScriptoriumDAO;
	private CityDAO cityDAO;
	private AreaDAO areaDAO;
	
	public UserScriptoriumDAO getUserScriptoriumDAO() {
		return userScriptoriumDAO;
	}

	public void setUserScriptoriumDAO(UserScriptoriumDAO userScriptoriumDAO) {
		this.userScriptoriumDAO = userScriptoriumDAO;
	}
	
	public CityDAO getCityDAO() {
		return cityDAO;
	}

	public void setCityDAO(CityDAO cityDAO) {
		this.cityDAO = cityDAO;
	}

	public AreaDAO getAreaDAO() {
		return areaDAO;
	}

	public void setAreaDAO(AreaDAO areaDAO) {
		this.areaDAO = areaDAO;
	}

	/**
	 * 保存UserScriptorium对象
	 * 
	 * @param us
	 * 			UserScriptorium
	 * @return  UserScriptorium
	 * 			UserScriptorium
	 */
	public UserScriptorium saveUserScriptorium(UserScriptorium us){
		us = this.getUserScriptoriumDAO().saveUserScriptorium(us);
		return us;
	}
	
	/**
	 * 更新UserScriptorium对象
	 * 
	 * @param us
	 * 			UserScriptorium
	 * @return  UserScriptorium
	 * 			UserScriptorium
	 */
	public UserScriptorium updateUserScriptorium(UserScriptorium us){
		us = this.getUserScriptoriumDAO().updateUserScriptorium(us);
		return us;
	}
	
	/**
	 * 根据ID删除UserScriptorium对象
	 * 
	 * @param id
	 * 			long
	 */
	public void removeUserScriptoriumById(long id){
		this.getUserScriptoriumDAO().removeUserScriptoriumById(id);
	}
	
	/**
	 * 根据ID获取UserScriptorium对象
	 * 
	 * @param id
	 * 			long
	 * @return  UserScriptorium
	 * 			UserScriptorium
	 */
	public UserScriptorium findUserScriptoriumById(long id){
		return this.getUserScriptoriumDAO().findUserScriptoriumById(id);
	}
	
	/**
	 * 获取UserScriptorium对象列表
	 * 
	 * @param orderby
	 *            String
	 * @param ascOrDesc
	 *            int
	 * @param pages
	 * 			  Pages
	 * @return PageList
	 * 			UserScriptorium对象列表
	 */
	public PageList findUserScriptoriums(String orderby, int ascOrDesc,Pages pages){
		PageList pl = new PageList();
        if (pages.getTotalNum() == -1) {
            pages.setTotalNum(this.getUserScriptoriumDAO().getUserScriptoriumNum());
        }
        pages.executeCount();
        if(pages.getTotalNum() == 0){
        	pl.setObjectList(null);
        	pl.setPages(pages);
        	return pl;
        }
		List l = this.getUserScriptoriumDAO().findUserScriptoriums(orderby, ascOrDesc,pages.getSpage(), pages.getPerPageNum());
		if(l == null || l.isEmpty()){
	   		 pl.setObjectList(null);
	   	     pl.setPages(pages);
	   		 return pl;
		}else{
			for(int i=0;i<l.size();i++){
				UserScriptorium us = (UserScriptorium) l.get(i);
				if(us.getCityId() == 0){
					City c = new City();
					c.setCityName("城市");
					us.setCity(c);
				}else{
					us.setCity(this.getCityDAO().findCityById(us.getCityId()));
				}
				if(us.getAreaId() == 0){
					Area a = new Area();
					a.setAreaName("地区");
					us.setArea(a);
				}else{
					us.setArea(this.getAreaDAO().findAreaByid(us.getAreaId()));
				}
			}
			pl.setObjectList(l);
	        pl.setPages(pages);
	        return pl;
		}
	}
	
	/**
	 * 根据scrName查询
	 * @param scrName
	 * @return
	 */
	public List findUserScriptoriumByscrName(String scrName){
		return this.getUserScriptoriumDAO().findUserScriptoriumByscrName(scrName);
	}
}
